跳到主要内容

三元表达式

三元表达式在行为上与它们在 C 中的行为完全相同,不引入任何新的关键字。

旧方式
local max
if a > b then
max = a
else
max = b
end
新方式
local max = a > b ? a : b

试一试

条件表达式

它们还支持一种替代语法,用于与较早版本的 Pluto 兼容:

local max = if a > b then a else b

Lua 没有三元表达式吗?

虽然的确可以像这样实现条件表达式:

local max = a > b and a or b

但是,当 true-expression 具有假值时,这种方法就会失效:

local x = -1
x = (x == -1 and nil or x)

在这种情况下,x 的值将是 -1,尽管本意是将其设置为 nil。在 Pluto 的三元表达式中不会出现这种问题。

信息

true-expression 难以用短语翻译,其意可理解为 当三元表达式语句中条件表达式的值为 _ture_ 时应当返回的表达式/值